1. Field of the Invention
Embodiments of the invention are in the field of techniques for testing clustered configurations, and more specifically, relate to a technique for efficiently testing and validating core functionality of a clustered configuration before submitting the clustered configuration to a more rigorous and time-consuming Hardware Compatibility Test (HCT) suite for certification purpose.
2. Description of Related Art
A cluster is a group of computers that work together to run a common set of applications and appear as a single system to the client and applications. The computers are physically connected by cables and programmatically connected by cluster software. These connections allow the computers to use failover and load balancing, which is not possible with a stand-alone computer.
Clustering, provided by cluster software such as Microsoft Cluster Server (MSCS) of Microsoft Corporation, provides high availability for mission-critical applications such as databases, messaging systems, and file and print services. High availability means that the cluster is designed so as to avoid a single point-of-failure. Applications can be distributed over more than one computer (also called node), achieving a degree of parallelism and failure recovery, and providing more availability. Multiple nodes in a cluster remain in constant communication. If one of the nodes in a cluster becomes unavailable as a result of failure of hardware or software, or of an administrator action for maintenance, another node takes over the workload of the failing node and begins providing service. This process is known as failover. With very high availability, users who were accessing the service would be able to continue to access the service, and would be unaware that the service was briefly interrupted and is now provided by a different node. A failback occurs when a previously failed application is restored to a running status on its original node.
Clustered configurations offered by a vendor are tested to obtain certifications. For clustered configurations running on a Windows operating system platform, the certifying authority is Microsoft Corporation.
The process of certification requires the set-up of the hardware components in a specific clustered configuration and the successful passing of a set of tests called the Cluster Hardware Compatibility Test (HCT) specifically provided by Microsoft Corporation. In addition to a specific hardware configuration, a clustered configuration may also include specific component drivers. Evidence of the successful passing of the Cluster HCT is submitted in the form of test log results to Microsoft Corporation. After accepting the test log results, Microsoft Corporation authorizes listing of the tested clustered configuration as a Certified Clustered Configuration in the Hardware Compatibility List on a Microsoft web site.
The Hardware Compatibility Test (HCT) is a suite of tests developed by Microsoft's Windows Hardware Quality Labs. HCT is used to test computer systems and peripherals for compatibility with the Windows operating system. There are portions of the HCT that specifically target the hardware and software that make up the clustered configuration. These portions are called Cluster HCT. A typical clustered configuration would comprise two or more systems, a shared disk subsystem, and a network switch/hub. The Cluster HCT is used to verify that these components work well together under the Windows operating system.
The effort and time required in conducting Cluster HCT are considerable. Dedicated hardware resources, setup, effort and labor of staff that must have an extremely high level of expertise in clustering technologies are required.
Thus, it is desirable to have a technique that can be used to provide comprehensive validation of clustered configurations in addition to providing a screening technique to identify obstacles that would show up in the lengthy Cluster HCT certification testing and provide aid in the debugging and replication of such obstacles before subjecting the clustered configurations to the actual Clustering HCT tests. It is also desirable that such technique is automated so as to greatly reduce the human effort and level of expertise required in testing cluster systems.